The invention relates to volume rendering.
For purposes of rendering an image of a volume for display on a computer, the volume may be represented by a finite number of points, and each of these points may be associated with a scalar or a vector value (a time varying value, for example) that represents a density of the volume at that point. In the case where sampling is used to obtain the values, the points that represent the computer-rendered volume may not be aligned with the actual points at which the samples were taken. Instead, each point of the computer-rendered volume may be a point of a uniform grid, and the value that is associated with the point may be obtained via trilinear interpolation of data that is sampled near the corresponding point of the actual volume. Procedures other than sampling may be used to derive the values, such as a procedure that uses one or more polynomial functions.
In general, volume rendering creates a view of the volume from a particular point of view (or two, for stereo display), while allowing image manipulations, such as false color and transparency manipulations. For certain three-dimensional (3-D) graphics applications (medical and geological applications, as examples), it may be desirable for displays of scalar or vector density volumes to be updated at rates fast enough to support real time interaction. This interaction may include traditional activities, such as rotation, cutting or clipping. However, the interaction may also include subtler interactions, such as volumetric deformations and morphing transformations to adjust and design shapes or to simulate tissue motion in surgery, as examples.
As an example, if a graphics application simulates surgery, a controller may be used to move a displayed scalpel. In this manner, the displayed scalpel must respond quickly in response to movement of the controller to prevent overshoot of the displayed scalpel. As an example, the difference in time from when the controller moves to when the scalpel moves in response may need to be less than approximately 100 milliseconds.
Current volume rendering schemes may use a central processing unit-based (CPU-based) approach in which a CPU executes software to perform the volume rendering. However, CPU-based processing may be too slow to support desired interaction rates. For example, some current volume rendering schemes may use a technique called xe2x80x9cray castingxe2x80x9d to form an image of a volume. With ray casting, the appearance of an opaque or translucent 3-D object is determined by tracing a ray from a viewpoint of the image to (and if necessary through) the object or from behind the object to the viewpoint. However, traditional approaches to ray casting may be slowed primarily by the nature of their memory accesses to volume elements (called xe2x80x98voxelsxe2x80x99), accesses that may nullify the performance benefits that are otherwise gained by a cache. This inefficient use of the cache may be improved by processing small rectangular blocks, or sub-blocks, of the volume at a time, but rectangular block organization may be an obstacle to fast morphing transformations.
Other volume rendering schemes may include techniques called splatting, 3-D texture mapping and shear-warp factorization. However, none of the above-described schemes may be fast enough to support morphing and/or display of the volume at desired interaction rates without relying on specialized graphics hardware and/or a substantial amount of pre-processing.
Thus, there is a continuing need for an arrangement that addresses one or more of the problems stated above.
In one embodiment, a method for use with a computer system includes assembling a group of volume units to represent at least a portion of a three-dimensional (3-D) object and compressing each volume unit onto a pixel plane to form an associated indication of the volume unit. The indications are used to form a first image of a view of the portion(s) of the 3-D object on a display of the computer system. The view of some of the volume units is changed, leaving the view of the remaining volume units unchanged. The indications that are associated with the remaining volume units are used to form a second image of the portion(s) of the 3-D object on the display.